package it.unipg.bipod.applicationLogic;

/**
 * Eccezione sollevata da SegretarioApplication quando si verifica un problema relativo
 * allo stato di registrazione di un docente.<br>
 * Il tipo di errore riscontrato e' descritto dalla proprieta' statoDocente.
 * 
 * @author Lorenzo Porzi
 * @see SegretarioApplication
 */
public class StatoDocenteException extends ApplicationException {
	private static final long serialVersionUID = -5969700286590055605L;

	private int statoDocente;
	
	/**
	 * Docente gia' registrato.
	 */
	public static final int REGISTRATO = 0;
	
	/**
	 * Docente non registrato.
	 */
	public static final int NON_REGISTRATO = 1;
	
	/**
	 * Docente gia' presente nella base di dati condivisa.
	 */
	public static final int PRESENTE = 2;
	
	/**
	 * Docente non presente nella base di dati condivisa.
	 */
	public static final int NON_PRESENTE = 3;
	
	/**
	 * Un segretario ha lo stesso nomeUtente del docente.
	 */
	public static final int PRESENTE_COME_SEGRETARIO = 4;
	
	/**
	 * Crea una StatoDocenteException relativa al tipo di errore specificato.
	 * 
	 * @param statoDocente il tipo di stato del docente che ha generato l'errore.
	 */
	public StatoDocenteException(int statoDocente) {
		super("Errore nello stato del docente");
		
		this.statoDocente = statoDocente;
	}
	
	/**
	 * Restituisce lo stato del docente che ha generato l'errore.
	 * 
	 * @return uno tra i valori delle costanti statiche di classe.
	 */
	public int getStatoDocente() {
		return this.statoDocente;
	}
}
